home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 7 / Amiga Format AFCD07 (Dec 1996, Issue 91).iso / serious / shareware / programming / ixemul-complete / ixemul / makefile.in < prev    next >
Makefile  |  1996-08-17  |  14KB  |  415 lines

  1. #### Start of system configuration section. ####
  2.  
  3. srcdir =    @srcdir@
  4. VPATH =        @srcdir@
  5.  
  6. # Common prefix for machine-independent installed files.
  7. prefix =    @prefix@
  8.  
  9. # Common prefix for machine-dependent installed files.
  10. exec_prefix =    @exec_prefix@
  11.  
  12. bindir =    $(exec_prefix)/bin
  13. libdir =    $(exec_prefix)/lib
  14. syslibsdir =    $(exec_prefix)/Sys/libs
  15. sysldir =    $(exec_prefix)/Sys/l
  16. incdir =    $(exec_prefix)/include
  17. etcdir =    $(exec_prefix)/etc
  18. mandir =    $(prefix)/man
  19.  
  20. INSTALL =    @INSTALL@
  21. INSTALL_PROGRAM = @INSTALL_PROGRAM@
  22. INSTALL_DATA =    @INSTALL_DATA@
  23.  
  24. CC =        @CC@
  25. AS =        as
  26. CFLAGS =    @CFLAGS@
  27. LDFLAGS =    @LDFLAGS@
  28.  
  29. RANLIB =    @RANLIB@
  30.  
  31. #### End system configuration section ####
  32.  
  33. # Directories that depend on baserel/no-baserel only
  34. BASE =        glue stack static net db
  35.  
  36.  
  37. # Directories that depend on the CPU type
  38. CPUONLY =    ixnet
  39.  
  40.  
  41. # Directories that depend on the CPU and FPU type
  42. CPUFPU =    general string stdlib stdio library
  43.  
  44.  
  45. # Directories that depend on both baserel/no-baserel and CPU/FPU type
  46. # None at the moment, although 'stack' and 'static' should be moved here
  47. # once we can use a CPU/FPU specific libc.a.
  48. BASECPUFPU =
  49.  
  50.  
  51. # For use in 'make clean' and 'make clobber'
  52. DIRS =        $(BASE) $(CPUONLY) $(CPUFPU) $(BASECPUFPU)
  53.  
  54.  
  55. ###  CPU-FPU types.
  56. ###
  57. ###  The default thing to do is to make all reasonable combinations of the
  58. ###  library.
  59. ###
  60. ###  Note that libsrc, which builds the runtime startup files and all
  61. ###  versions of libc.a, and utils completely ignore the base/cpu/fpu variables,
  62. ###  so these are handled in the all: target.
  63. ###
  64. ###  You can remove specific CPU/FPU combinations that you are not interested in.
  65.  
  66. CPU-FPU-TYPES =    68000.soft-float \
  67.         68020.soft-float 68020.68881 \
  68.         68040.soft-float 68040.68881
  69.  
  70. # Some additional options for OTHER_CFLAGS that may or may not be useful are:
  71. #
  72. # -DDEBUG_VERSION    (build a debugging version)
  73.  
  74. OTHER_CFLAGS =    -fomit-frame-pointer -Wall
  75.  
  76.  
  77. ###############################################
  78. ###                                         ###
  79. ###  DO NOT EDIT ANYTHING BELOW THIS LINE!  ###
  80. ###                                         ###
  81. ###############################################
  82.  
  83. ### All targets that are generated look like this:
  84. ###
  85. ###     directory-name.cpu.fpu.base
  86. ###
  87. ### The following four defines extract one of these fields from the target name:
  88.  
  89. dir  = $(word 1, $(subst ., ,$@))
  90. cpu  = $(word 2, $(subst ., ,$@))
  91. fpu  = $(word 3, $(subst ., ,$@))
  92. base = $(word 4, $(subst ., ,$@))
  93.  
  94.  
  95. FLAGS_TO_PASS =    "AS=$(AS)"            \
  96.         "BASE=$(base)"            \
  97.         "BUILDDIR=$(dir)"        \
  98.         "CC=$(CC)"            \
  99.         "CFLAGS=$(CFLAGS)"        \
  100.         "CPU=$(cpu)"            \
  101.         "FPU=$(fpu)"            \
  102.         "LDFLAGS=$(LDFLAGS)"        \
  103.         "OTHER_CFLAGS=$(OTHER_CFLAGS)"    \
  104.         "RANLIB=$(RANLIB)"
  105.  
  106. ### Generate the targets we have to build. First we create defines for each
  107. ### type (dependent on base only, or only on cpu-fpu, or dependent on all
  108. ### three). Only the directory needs to be filled in in the second stage.
  109.  
  110. base-types         = $(d).68000.soft-float.baserel \
  111.              $(d).68000.soft-float.no-baserel
  112.  
  113. cpu-types       = $(addprefix $(d).,$(sort $(CPU-FPU-TYPES:.68881=.soft-float)))
  114.  
  115. cpu-fpu-types      = $(addprefix $(d).,$(CPU-FPU-TYPES))
  116.  
  117. base-cpu-fpu-types = $(addsuffix .baserel, $(cpu-fpu-types)) \
  118.              $(addsuffix .no-baserel, $(cpu-fpu-types))
  119.  
  120.  
  121. ### Now fill in the directory name
  122.  
  123. base-targets         := $(foreach d, $(BASE),       $(base-types))
  124. cpu-targets          := $(foreach d, $(CPUONLY),    $(cpu-types))
  125. cpu-fpu-targets      := $(foreach d, $(CPUFPU),     $(cpu-fpu-types))
  126. base-cpu-fpu-targets := $(foreach d, $(BASECPUFPU), $(base-cpu-fpu-types))
  127.  
  128.  
  129. ### Make all targets and libsrc, utils and man pages.
  130.  
  131. all:    $(base-targets) $(cpu-targets) $(cpu-fpu-targets) $(base-cpu-fpu-targets)
  132.     @(cd libsrc && $(MAKE) $(FLAGS_TO_PASS))
  133.     @(cd utils && $(MAKE) $(FLAGS_TO_PASS))
  134.     @(cd man && $(MAKE) $(FLAGS_TO_PASS))
  135.  
  136. ###  Some targets are only dependent on BASE, others on CPU-FPU, and
  137. ###  others depend on all three.
  138.  
  139. ###  This makes targets that are only dependent on BASE.
  140.  
  141. $(base-targets):
  142.     @if [ ! -d $(dir)/$(base) ]; then    \
  143.         echo mkdir -p $(dir)/$(base);    \
  144.         mkdir -p $(dir)/$(base);    \
  145.     fi;                    \
  146.     (cd $(dir)/$(base) ; $(MAKE) -f ../Makefile $(FLAGS_TO_PASS));
  147.  
  148.  
  149. ###  This makes targets that are only dependent on the CPU.
  150.  
  151. $(cpu-targets):
  152.     @if [ ! -d $(dir)/$(cpu) ]; then        \
  153.         echo mkdir -p $(dir)/$(cpu);        \
  154.         mkdir -p $(dir)/$(cpu);            \
  155.     fi;                        \
  156.     (cd $(dir)/$(cpu) ; $(MAKE) -f ../Makefile $(FLAGS_TO_PASS))
  157.  
  158.  
  159. ###  This makes targets that are only dependent on CPU and FPU.
  160.  
  161. $(cpu-fpu-targets):
  162.     @if [ ! -d $(dir)/$(cpu)/$(fpu) ]; then        \
  163.         echo mkdir -p $(dir)/$(cpu)/$(fpu);    \
  164.         mkdir -p $(dir)/$(cpu)/$(fpu);        \
  165.     fi;                        \
  166.     (cd $(dir)/$(cpu)/$(fpu) ; $(MAKE) -f ../../Makefile $(FLAGS_TO_PASS))
  167.  
  168.  
  169. ###  This makes targets that are dependent on CPU, FPU, and BASE.
  170.  
  171. $(base-cpu-fpu-targets):
  172.     @if [ ! -d $(dir)/$(base)/$(cpu)/$(fpu) ]; then        \
  173.         echo mkdir -p $(dir)/$(base)/$(cpu)/$(fpu);    \
  174.         mkdir -p $(dir)/$(base)/$(cpu)/$(fpu);        \
  175.     fi;                            \
  176.     (cd $(dir)/$(base)/$(cpu)/$(fpu) ; $(MAKE) -f ../../../Makefile $(FLAGS_TO_PASS));
  177.  
  178.  
  179. ###  Install all the libraries, include files, runtime files, etc.
  180.  
  181. install: installdirs
  182.     if [ -f library/68000/soft-float/ixemul.library ] ; then \
  183.         $(INSTALL) library/68000/soft-float/ixemul.library \
  184.             $(syslibsdir)/ixemul.library; \
  185.     else true; fi
  186.     if [ -f library/68000/soft-float/ixemul.trace ] ; then \
  187.         $(INSTALL) library/68000/soft-float/ixemul.trace \
  188.             $(syslibsdir)/ixemul.trace; \
  189.     else true; fi
  190.     if [ -f library/68000/soft-float/ixemul.library ] ; then \
  191.         $(INSTALL) library/68000/soft-float/ixemul.library \
  192.             $(syslibsdir)/ixemul000.library; \
  193.     else true; fi
  194.     if [ -f library/68000/soft-float/ixemul.trace ] ; then \
  195.         $(INSTALL) library/68000/soft-float/ixemul.trace \
  196.             $(syslibsdir)/ixemul000.trace; \
  197.     else true; fi
  198.     if [ -f library/68020/soft-float/ixemul.library ] ; then \
  199.         $(INSTALL) library/68020/soft-float/ixemul.library \
  200.             $(syslibsdir)/ixemul020.library; \
  201.     else true; fi
  202.     if [ -f library/68020/soft-float/ixemul.trace ] ; then \
  203.         $(INSTALL) library/68020/soft-float/ixemul.trace \
  204.             $(syslibsdir)/ixemul020.trace; \
  205.     else true; fi
  206.     if [ -f library/68040/soft-float/ixemul.library ] ; then \
  207.         $(INSTALL) library/68040/soft-float/ixemul.library \
  208.             $(syslibsdir)/ixemul040.library; \
  209.     else true; fi
  210.     if [ -f library/68040/soft-float/ixemul.trace ] ; then \
  211.         $(INSTALL) library/68040/soft-float/ixemul.trace \
  212.             $(syslibsdir)/ixemul040.trace; \
  213.     else true; fi
  214.     if [ -f library/68020/68881/ixemul.library ] ; then \
  215.         $(INSTALL) library/68020/68881/ixemul.library \
  216.             $(syslibsdir)/ixemul020fpu.library; \
  217.     else true; fi
  218.     if [ -f library/68020/68881/ixemul.trace ] ; then \
  219.         $(INSTALL) library/68020/68881/ixemul.trace \
  220.             $(syslibsdir)/ixemul020fpu.trace; \
  221.     else true; fi
  222.     if [ -f library/68040/68881/ixemul.library ] ; then \
  223.         $(INSTALL) library/68040/68881/ixemul.library \
  224.             $(syslibsdir)/ixemul040fpu.library; \
  225.     else true; fi
  226.     if [ -f library/68040/68881/ixemul.trace ] ; then \
  227.         $(INSTALL) library/68040/68881/ixemul.trace \
  228.             $(syslibsdir)/ixemul040fpu.trace; \
  229.     else true; fi
  230.     if [ -f library/68060/68881/ixemul.library ] ; then \
  231.         $(INSTALL) library/68060/68881/ixemul.library \
  232.             $(syslibsdir)/ixemul060fpu.library; \
  233.     else true; fi
  234.     if [ -f library/68060/68881/ixemul.trace ] ; then \
  235.         $(INSTALL) library/68060/68881/ixemul.trace \
  236.             $(syslibsdir)/ixemul060fpu.trace; \
  237.     else true; fi
  238.  
  239.     if [ -f ixnet/68000/ixnet.library ] ; then \
  240.         $(INSTALL) ixnet/68000/ixnet.library \
  241.             $(syslibsdir)/ixnet.library; \
  242.     else true; fi
  243.     if [ -f ixnet/68000/ixnet.library ] ; then \
  244.         $(INSTALL) ixnet/68000/ixnet.library \
  245.             $(syslibsdir)/ixnet000.library; \
  246.     else true; fi
  247.     if [ -f ixnet/68020/ixnet.library ] ; then \
  248.         $(INSTALL) ixnet/68020/ixnet.library \
  249.             $(syslibsdir)/ixnet020.library; \
  250.     else true; fi
  251.     if [ -f ixnet/68040/ixnet.library ] ; then \
  252.         $(INSTALL) ixnet/68040/ixnet.library \
  253.             $(syslibsdir)/ixnet040.library; \
  254.     else true; fi
  255.     if [ -f ixnet/68060/ixnet.library ] ; then \
  256.         $(INSTALL) ixnet/68060/ixnet.library \
  257.             $(syslibsdir)/ixnet060.library; \
  258.     else true; fi
  259.  
  260.     $(INSTALL) libsrc/bcrt0.o $(libdir)/bcrt0.o
  261.     $(INSTALL) libsrc/crt0.o $(libdir)/crt0.o
  262.     $(INSTALL) libsrc/gcrt0.o $(libdir)/gcrt0.o
  263.     $(INSTALL) libsrc/mcrt0.o $(libdir)/mcrt0.o
  264.     $(INSTALL) libsrc/rcrt0.o $(libdir)/rcrt0.o
  265.     $(INSTALL) libsrc/libc.a $(libdir)/libc.a
  266.     $(INSTALL) libsrc/libbc.a $(libdir)/libb/libc.a
  267.     $(INSTALL) libsrc/libc_p.a $(libdir)/libc_p.a
  268.     $(INSTALL_PROGRAM) utils/ixtrace $(bindir)/ixtrace
  269.     $(INSTALL_PROGRAM) utils/ixprefs $(bindir)/ixprefs
  270.     $(INSTALL_PROGRAM) utils/ixtimezone $(bindir)/ixtimezone
  271.     $(INSTALL_PROGRAM) utils/ixrun $(bindir)/ixrun
  272.     $(INSTALL) utils/ixpipe-handler $(sysldir)/ixpipe-handler
  273.     (cd $(srcdir)/include && cp -r . $(incdir))
  274.     find $(incdir) -type d -name CVS -print | xargs rm -rf
  275.     (cd $(srcdir)/man && cp -r man? $(mandir))
  276.     find $(mandir) -type d -name CVS -print | xargs rm -rf
  277.     mkdir -p $(etcdir)/zoneinfo
  278.     (cd utils/zoneinfo && cp -r . $(etcdir)/zoneinfo)
  279.         
  280.  
  281. installdirs:    mkinstalldirs
  282.     $(srcdir)/mkinstalldirs $(bindir) $(libdir) $(syslibsdir) \
  283.         $(sysldir) $(incdir) $(etcdir) $(mandir) $(libdir)/libb
  284.  
  285.  
  286. clean:
  287.     @-for i in $(DIRS) libsrc utils man; \
  288.         do (cd $$i ; $(MAKE) $(FLAGS_TO_PASS) clean) ; done
  289.  
  290.  
  291. clobber:
  292.     @-for i in $(DIRS) libsrc utils man; \
  293.         do (cd $$i ; $(MAKE) $(FLAGS_TO_PASS) clobber) ; done
  294.     -rm -f Makefile config.* conftest.c
  295.  
  296.  
  297. # Build source and binary distribution files.
  298.  
  299. dist:
  300.     #
  301.     # First get rid of any leftovers from a previous "make dist"
  302.     #
  303.     rm -rf ade ixemul distrib
  304.     mkdir -p distrib
  305.     #
  306.     # Create ixemul-bin.lha, which contains utilities
  307.     # that are generally useful to ixemul.library users.
  308.     #
  309.     mkdir -p ade/bin ade/Sys/l ade/Sys/devs
  310.     cp -p utils/ixprefs ade/bin/ixprefs
  311.     cp -p utils/ixtrace ade/bin/ixtrace
  312.     cp -p utils/ixrun ade/bin/ixrun
  313.     cp -p utils/ixpipe-handler ade/Sys/l/ixpipe-handler
  314.     cp -p $(srcdir)/utils/Mountlist ade/Sys/devs/MountList.ixpipe
  315.     (cd ade && lha -mraxeq a /distrib/ixemul-bin.lha bin Sys)
  316.     sleep 5
  317.     rm -rf ade
  318.     #
  319.     # Create ixemul-tz.lha, which has timezone related pieces.
  320.     #
  321.     mkdir -p ade/etc ade/bin
  322.     cp -p utils/ixtimezone ade/bin/ixtimezone
  323.     cp -p utils/zic ade/bin/zic
  324.     cp -pr utils/zoneinfo ade/etc/zoneinfo
  325.     (cd ade && lha -mraxeq a /distrib/ixemul-tz.lha bin etc)
  326.     sleep 5
  327.     rm -rf ade
  328.     #
  329.     # Create ixemul-sdk.lha, which contains the files that
  330.     # programmers need to build applications that use ixemul.library.
  331.     #
  332.     mkdir -p ade/lib/libb
  333.     cp -p libsrc/bcrt0.o ade/lib/bcrt0.o
  334.     cp -p libsrc/crt0.o ade/lib/crt0.o
  335.     cp -p libsrc/gcrt0.o ade/lib/gcrt0.o
  336.     cp -p libsrc/mcrt0.o ade/lib/mcrt0.o
  337.     cp -p libsrc/rcrt0.o ade/lib/rcrt0.o
  338.     cp -p libsrc/libc.a ade/lib/libc.a
  339.     cp -p libsrc/libbc.a ade/lib/libb/libc.a
  340.     cp -p libsrc/libc_p.a ade/lib/libc_p.a
  341.     cp -pr $(srcdir)/include ade/include
  342.     mkdir ade/man
  343.     cp -pr man/cat? ade/man
  344.     find ade -name CVS -print | xargs rm -rf
  345.     (cd ade && lha -mraxeq a /distrib/ixemul-sdk.lha lib include man)
  346.     sleep 5
  347.     rm -rf ade
  348.     #
  349.     # Create ixemul-doc.lha, which contains various documentation
  350.     # files.
  351.     #
  352.     mkdir ixemul
  353.     cp -p $(srcdir)/COPYING ixemul/COPYING
  354.     cp -p $(srcdir)/COPYING.LIB ixemul/COPYING.LIB
  355.     cp -p $(srcdir)/INSTALL ixemul/INSTALL
  356.     cp -p $(srcdir)/NEWS ixemul/NEWS
  357.     cp -p $(srcdir)/BUGS ixemul/BUGS
  358.     cp -p $(srcdir)/TODO ixemul/TODO
  359.     cp -p $(srcdir)/README ixemul/README
  360.     cp -p $(srcdir)/utils/ixprefs.guide ixemul/ixprefs.guide
  361.     cp -p $(srcdir)/utils/ixprefs.guide.info ixemul/ixprefs.guide.info
  362.     lha -mraxeq a distrib/ixemul-doc.lha ixemul
  363.     rm -rf ixemul
  364.     #
  365.     # Create ixemul-src.tgz, which contains the source code.
  366.     # Do it in a temporary location so we don't have to
  367.     # know where the build dir is, or translate between
  368.     # Unix & AmigaDOS forms.  We also delete any CVS dirs
  369.     # at this time.
  370.     #
  371.     rm -rf ixemul-src.tgz ixemul
  372.     cp -pr $(srcdir) ixemul
  373.     find ixemul -name CVS -print | xargs rm -rf
  374.     lha -mraxeq a distrib/ixemul-src.lha ixemul
  375.     rm -rf ixemul
  376.     #
  377.     # Create ixemul-<cpu><fpu>.lha
  378.     #
  379.     mkdir -p ade/Sys/libs
  380.     cp -p library/68000/soft-float/ixemul.library ade/Sys/libs/ixemul000.library
  381.     cp -p ixnet/68000/ixnet.library ade/Sys/libs/ixnet000.library
  382.     cp -p $(srcdir)/README ade/Sys/libs/README
  383.     (cd ade && lha -mraxeq a /distrib/ixemul-000s.lha Sys)
  384.     rm -f ade/Sys/libs/*
  385.     cp -p library/68000/soft-float/ixemul.trace ade/Sys/libs/ixemul000.trace
  386.     cp -p $(srcdir)/README ade/Sys/libs/README
  387.     (cd ade && lha -mraxeq a /distrib/ixemul-000t.lha Sys)
  388.     rm -f ade/Sys/libs/*
  389.     cp -p library/68020/soft-float/ixemul.library ade/Sys/libs/ixemul020.library
  390.     cp -p ixnet/68020/ixnet.library ade/Sys/libs/ixnet020.library
  391.     cp -p $(srcdir)/README ade/Sys/libs/README
  392.     (cd ade && lha -mraxeq a /distrib/ixemul-020s.lha Sys)
  393.     rm -f ade/Sys/libs/*
  394.     cp -p library/68040/soft-float/ixemul.library ade/Sys/libs/ixemul040.library
  395.     cp -p ixnet/68040/ixnet.library ade/Sys/libs/ixnet040.library
  396.     cp -p $(srcdir)/README ade/Sys/libs/README
  397.     (cd ade && lha -mraxeq a /distrib/ixemul-040s.lha Sys)
  398.     rm -f ade/Sys/libs/*
  399.     cp -p library/68020/68881/ixemul.library ade/Sys/libs/ixemul020fpu.library
  400.     cp -p ixnet/68020/ixnet.library ade/Sys/libs/ixnet020fpu.library
  401.     cp -p $(srcdir)/README ade/Sys/libs/README
  402.     (cd ade && lha -mraxeq a /distrib/ixemul-020f.lha Sys)
  403.     rm -f ade/Sys/libs/*
  404.     cp -p library/68040/68881/ixemul.library ade/Sys/libs/ixemul040fpu.library
  405.     cp -p ixnet/68040/ixnet.library ade/Sys/libs/ixnet040fpu.library
  406.     cp -p $(srcdir)/README ade/Sys/libs/README
  407.     (cd ade && lha -mraxeq a /distrib/ixemul-040f.lha Sys)
  408.     rm -f ade/Sys/libs/*
  409. #    cp -p library/68060/68881/ixemul.library ade/Sys/libs/ixemul060fpu.library
  410. #    cp -p ixnet/68060/ixnet.library ade/Sys/libs/ixnet060fpu.library
  411. #    cp -p $(srcdir)/README ade/Sys/libs/README
  412. #    (cd ade && lha -mraxeq a /distrib/ixemul-060f.lha Sys)
  413.     sleep 5
  414.     rm -rf ade
  415.